요약
- 목적: 반복문의 진행상황을 확인
- 활용: 일반적인 반복문 및 apply() 함수에서 활용 가능
1. 모듈 소개 - tqdm
목적
- 시간이 다소 걸리는 Loop문 실행시, 진행표시 바를 생성하여 진행정도를 확인하기 위함
- 반복자 객체(
iterable
)를 tqdm으로 감싸면 끝
2. 활용
1) 기본 활용법
from tqdm import tqdm
# 1. 일반 for 문
for i in tqdm(range(len(df))):
print(i)
2) enumerate, zip, itterrow 에서 활용
tqdm
은 내부적으로 감싼 녀석의 길이(__len__
)를 확인하지만,enumerate
,zip
에는 해당 요소가 없음
- 외부에서 감쌀 때:
total
옵션 사용- 내부에서 감쌀 때: list를 감쌈
from tqdm import tqdm
# 1. 외부에서 감쌀 때
## len(list1) = len(list2)
for pair in tqdm(zip(list1, list2), tota = len(list1)):
print(pair)
for idx, row in tqdm(df.iterrows(), total = len(df)):
print(idx, row)
# 2. 내부에서 감쌀 때
for i, row in zip(tqdm(list1)):
print(i, row)
3) generator 활용
반복 횟수를 알고 있을 때
length = 1000
generator = (2 * n for n in range(length)):
for n in tqdm(generator, total = length):
pass
3. apply 함수에 적용
목적
- apply() 함수를 활용할 때 기존
tqdm
과 같은 진행상황을 확인하기 위함progress_apply()
활용
import pandas as pd
from tqdm import tqdm
tqdm.pandas() # tqdm의 pandas전용 메소드를 호출합니다.
df['col3'] = df.progress_apply(lambda x: x['col'] + x['col2'])
# 띄어쓰기 카운트 열
df['count'] = df['context'].progress_apply(lambda x: len(x.split()))
참고사이트